'use strict'

const router = require('koa-router')()
const fs = require('fs')

// 获取路由定义文件
function getRouterFile(filePath) {
    // 读取当前目录下所有的文件
    let files = fs.readdirSync(filePath) // log(files) ---> 打印所有的文件
    // 遍历找出所有以.js结尾的文件 并且不是index.js文件
    let routerfile = files.filter(item => {
        return item.endsWith('.js') && item !== 'index.js'
    })
    return routerfile
}

// 注册所有引入模块的路由文件
function createRouter(routerfile){
    routerfile.forEach(item => {
        let tmpPath = __dirname + '/' + item
        // console.log(tmpPath); //打印文件所在的完整路径 C:\Users\PilRio\Desktop\softDemo\soft_backend\router/product.js
        let obj = require(tmpPath)
        // console.log(obj);  //打印文件中的module.exports内容

        for(let i in obj){
            let tmpArr = i.split(' ')
            let rMethod = tmpArr[0] // 打印请求方式  --->  get
            let rPath = tmpArr[1]  // 打印路径  ---> /index
            let rFunction = obj [i]  // 打印函数 ---> [Function: fn_login]
            
            // 判断请求方式
            if(rMethod == 'get'){
                router.get(rPath,rFunction)
            }else if(rMethod == 'post'){
                router.post(rPath,rFunction)
            }else if(rMethod == 'put'){
                router.put(rPath,rFunction)
            }else if(rMethod == 'delete'){
                router.delete(rPath,rFunction)
            }

        }
    });
}

let routerFile = getRouterFile(__dirname)
createRouter(routerFile)

module.exports = router